int a[10],*p=a;p++;p++之后是.............
来源:百度知道 编辑:UC知道 时间:2024/05/07 19:58:06
int a[10],*p=a;p++;p++之后是指向数组的下一个元素,还是内存的址加一?
我问的问题有毛病.........
我要问的是p里的值加一还是加上能使指针指向下一个元素的数
我问的问题有毛病.........
我要问的是p里的值加一还是加上能使指针指向下一个元素的数
内存地址 按照 int类型的递进
////////////////
加上指针指向下一个元素的数啊 就是指针再数组元素之间的递进啊。。
既指向下一个元素
同时地址也是int类型的递进
是指向下一个元素,p的地址是不变的,它的值,也就是所指向数据内存地址按int类型的递加
内存地址加一!!
//如果是元素的话应该这样表示:
*p=a[i].这时p指向的是数组内的元素,而*p=a意思是p里面的值是数组a的首地址,p自己本身也占有一定的内存,也占有一个地址,这个地址和数组a的首地址并不连续.p++之后p与数组a就没有什么关系了//
//如a[]={1,2,3,};
则a[0]=1,a[1]=2,a[2]=3;
假设a[0]的地址是 0f00 所以a的首地址是也为 0f00 ,
而*p指向了数组a,那么p里面的值就是 0f00 ,
而p本身也占有一定的内存,它的地址由系统自动分配,
假设是 0fa0 这个地址和a的地址是不连续的,
p++之后p的地址就变成了 0fa2 ,
而p的值(也就是"0fa2"这个地址里面的值)这时候并没有谁赋进里面,
所以这时和数组a就没有什么关系了//
我也考虑过这个问题,其实这2种情况都是
怎么说呢,数组的地址本来就是连续的
假如a[0]的地址是2001,那么a[1]的地址就是2002,如果p++了,那么p就是指向了a[1],而内存的地址也加了1,这样说懂了把^_^
p++ 是指向下一个地址,*P就是取地址中的值了
int *p=&a;和 int *p; *p=a;和 int *p; p=&a;有区别么?
c语言int *p=a解释
若定义:"int a[10],*p;p=a;"则执行"p=p+5;"后,与*p不相等的是()。
int a[]={10,9,8,7,6} *p=a; *(p+1)*(p+2)[2]=?
long(A::*p)(int a)这是什么意思尤其是A::*p.
(a^p-a)%p
程序段如下:int a[10];int *p;p=a;则程序中的指针变量p的指向地址是:
int*p=&a这句话是什么意思 语法对不对呢
a[i]=*p++
C语言: ijnt a=1,*p=&a;与int a=1,*p; p=&a; 这两句表达的是一个意思